package com.controladores.controlvehicular;

import java.util.Calendar;

import com.controladores.controlvehicular.R;
import com.controladores.controlvehicular.basededatos.GestorBaseDatos;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class HorarioTrabajo extends Activity {
	private String  nombreZona1 = "",horaFinal1 = "",horaInicio1 = ""; 
	private String  nombreZona2 = "",horaFinal2 = "",horaInicio2 = ""; 
	private String  nombreZona3 = "",horaFinal3 = "",horaInicio3 = ""; 
	private String  nombreZona4 = "",horaFinal4 = "",horaInicio4 = "" ; 
	private String recesoZona1="";
	private String recesoZona2="";
	private String recesoZona3="";
	private String recesoZona4="";
	private TextView etiquetaHoraInicioZona1, etiquetaHoraInicioZona2, etiquetaHoraInicioZona3, etiquetaHoraInicioZona4,
	etiquetaHoraFinalZona1, etiquetaHoraFinalZona2, etiquetaHoraFinalZona3, etiquetaHoraFinalZona4,
	etiquetaNombreZona1, etiquetaNombreZona2, etiquetaNombreZona3, etiquetaNombreZona4,
	etiquetaUsuario,etiquetaHorarioTrabajo,etiquetaRecesoZona1,etiquetaRecesoZona2,etiquetaRecesoZona3,etiquetaRecesoZona4;
	private  TextView etiquetaEstadoZona1, etiquetaEstadoZona2, etiquetaEstadoZona3, etiquetaEstadoZona4; 
	private int horaSistema;
	private String usuario;
	private Button botonAceptar;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_horario_trabajo);
		
		etiquetaUsuario = (TextView) findViewById(R.id.edNomUsuarioA);
		Typeface tipofuenteTitulo = Typeface.createFromAsset(getAssets(),
				"RobotoCondensedRegular.ttf");
		etiquetaHorarioTrabajo = (TextView) findViewById(R.id.tHorarioTrabajo);
		etiquetaHorarioTrabajo.setTypeface(tipofuenteTitulo);

		etiquetaNombreZona1 = (TextView) findViewById(R.id.tvdenominacion1);
		etiquetaHoraInicioZona1 = (TextView) findViewById(R.id.tvhoraInicial1);
		etiquetaHoraFinalZona1 = (TextView) findViewById(R.id.tvhoraFinal1);
		etiquetaEstadoZona1 = (TextView) findViewById(R.id.tvestado1);
		etiquetaRecesoZona1 = (TextView) findViewById(R.id.tvReceso1);
		
		etiquetaNombreZona2 = (TextView) findViewById(R.id.tvdenominacion2);
		etiquetaHoraInicioZona2 = (TextView) findViewById(R.id.tvhoraInicial2);
		etiquetaHoraFinalZona2 = (TextView) findViewById(R.id.tvhoraFinal2);
		etiquetaEstadoZona2 = (TextView) findViewById(R.id.tvestado2);
		etiquetaRecesoZona2 = (TextView) findViewById(R.id.tvReceso2);
		
		etiquetaNombreZona3 = (TextView) findViewById(R.id.tvdenominacion3);
		etiquetaHoraInicioZona3 = (TextView) findViewById(R.id.tvhoraInicial3);
		etiquetaHoraFinalZona3 = (TextView) findViewById(R.id.tvhoraFinal3);
		etiquetaEstadoZona3 = (TextView) findViewById(R.id.tvestado3);
		etiquetaRecesoZona3 = (TextView) findViewById(R.id.tvReceso3);
		
		etiquetaNombreZona4 = (TextView) findViewById(R.id.tvdenominacion4);
		etiquetaHoraInicioZona4 = (TextView) findViewById(R.id.tvhoraInicial4);
		etiquetaHoraFinalZona4 = (TextView) findViewById(R.id.tvhoraFinal4);
		etiquetaEstadoZona4 = (TextView) findViewById(R.id.tvestado4);
		etiquetaRecesoZona4 = (TextView) findViewById(R.id.tvReceso4);
		
		botonAceptar = (Button) findViewById(R.id.btnSalirHorario);
		botonAceptar.setOnClickListener(new View.OnClickListener() {
			public void onClick(View view) {
				Intent aZonas = new Intent(HorarioTrabajo.this, ZonasControl.class);
				startActivity(aZonas);
			}
		});
		
		try {
			Calendar c = Calendar.getInstance();
			horaSistema = c.get(Calendar.HOUR_OF_DAY);
			usuario = "";
			GestorBaseDatos manejador = new GestorBaseDatos(
					HorarioTrabajo.this);
			manejador.abrirBaseDatos();
			usuario = manejador.consultarUsuario();
			etiquetaUsuario.setText(usuario);
			String cadenaHoraInicio = "";
			cadenaHoraInicio = manejador.consultarHoraInicio1();
			String descomposicionHoraInicio[] = descomponerCadena(cadenaHoraInicio, ":");
			int horaInicio = Integer.parseInt(descomposicionHoraInicio[0]);
			String cadenaHoraFinal = "";
			cadenaHoraFinal = manejador.consultarHoraFinal1();
			String descomposicionHoraFinal[] = descomponerCadena(cadenaHoraFinal, ":");
			int horaFinal = Integer.parseInt(descomposicionHoraFinal[0]);
			manejador.close();
			//System.out.println("hora inicial" + horaInicio + " hora final"
			//		+ horaFinal + " hora sistema " + horaSistema);
			manejador.abrirBaseDatos();
			horaInicio1 = manejador.consultarHoraInicio1();			 
			horaFinal1 = manejador.consultarHoraFinal1();
			nombreZona1 = manejador.consultarZona1();
			recesoZona1 = manejador.consultarRecesoZona1();
			
			//activadoZ1 = manejador.consultarActivadoZ1();
			manejador.close();
			asignarTexto(horaSistema, horaInicio, horaFinal, etiquetaNombreZona1, etiquetaHoraInicioZona1, etiquetaHoraFinalZona1, etiquetaRecesoZona1, etiquetaEstadoZona1, nombreZona1, horaInicio1, horaFinal1, recesoZona1);
		} catch (Exception e) {
			mostrarNoAsignacion(etiquetaNombreZona1, etiquetaHoraInicioZona1, etiquetaHoraFinalZona1, etiquetaRecesoZona1, etiquetaEstadoZona1);
		}
		try {
			Calendar c = Calendar.getInstance();
			horaSistema = c.get(Calendar.HOUR_OF_DAY);
			GestorBaseDatos manejador = new GestorBaseDatos(
					HorarioTrabajo.this);
			manejador.abrirBaseDatos();
			String cadenaHoraInicio = "";
			cadenaHoraInicio = manejador.consultarHoraInicio2();
			String descomposicionHoraInicio[] = descomponerCadena(cadenaHoraInicio, ":");
			int horaInicio = Integer.parseInt(descomposicionHoraInicio[0]);
			String cadenaHoraFinal = "";
			cadenaHoraFinal = manejador.consultarHoraFinal2();
			String descomposicionHoraFinal[] = descomponerCadena(cadenaHoraFinal, ":");
			int horaFinal = Integer.parseInt(descomposicionHoraFinal[0]);
			manejador.close();
			System.out.println("hora inicial" + horaInicio + " hora final"
					+ horaFinal + " hora sistema " + horaSistema);
			manejador.abrirBaseDatos();
			horaInicio2 = manejador.consultarHoraInicio2();			 
			horaFinal2 = manejador.consultarHoraFinal2();
			nombreZona2 = manejador.consultarZona2();
			recesoZona2 = manejador.consultarRecesoZona2();
			//activadoZ2 = manejador.consultarActivadoZ2();

			manejador.close();
			asignarTexto(horaSistema, horaInicio, horaFinal, etiquetaNombreZona2, etiquetaHoraInicioZona2, 
					etiquetaHoraFinalZona2, etiquetaRecesoZona2, etiquetaEstadoZona2, nombreZona2, horaInicio2, horaFinal2, recesoZona2);
			
		} catch (Exception e) {
			mostrarNoAsignacion(etiquetaNombreZona2, etiquetaHoraInicioZona2, etiquetaHoraFinalZona2, etiquetaRecesoZona2, etiquetaEstadoZona2);
		}
		try {
			Calendar c = Calendar.getInstance();
			horaSistema = c.get(Calendar.HOUR_OF_DAY);
			GestorBaseDatos manejador = new GestorBaseDatos(
					HorarioTrabajo.this);
			manejador.abrirBaseDatos();
			String cadenaHoraInicio = "";
			cadenaHoraInicio = manejador.consultarHoraInicio3();
			String descomposicionHoraInicio[] = descomponerCadena(cadenaHoraInicio, ":");
			int horaInicio = Integer.parseInt(descomposicionHoraInicio[0]);
			String cadenaHoraFinal = "";
			cadenaHoraFinal = manejador.consultarHoraFinal3();
			String descomposicionHoraFinal[] = descomponerCadena(cadenaHoraFinal, ":");
			int horaFinal = Integer.parseInt(descomposicionHoraFinal[0]);
			manejador.close();
			System.out.println("hora inicial" + horaInicio + " hora final"
					+ horaFinal + " hora sistema " + horaSistema);
			manejador.abrirBaseDatos();
			horaInicio3 = manejador.consultarHoraInicioZona3();			 
			horaFinal3 = manejador.consultarHoraFinalZona3();
			nombreZona3 = manejador.consultarZona3();
			recesoZona3 = manejador.consultarRecesoZona3();
			//activadoZ3 = manejador.consultarActivadoZ3();

			manejador.close();
			asignarTexto(horaSistema, horaInicio, horaFinal, etiquetaNombreZona3, etiquetaHoraInicioZona3, 
					etiquetaHoraFinalZona3, etiquetaRecesoZona3, etiquetaEstadoZona3, nombreZona3, horaInicio3, horaFinal3, recesoZona3);
			
		} catch (Exception e) {
			mostrarNoAsignacion(etiquetaNombreZona3, etiquetaHoraInicioZona3, etiquetaHoraFinalZona3, etiquetaRecesoZona3, etiquetaEstadoZona3);
		} 
		try {
			Calendar c = Calendar.getInstance();
			horaSistema = c.get(Calendar.HOUR_OF_DAY);
			GestorBaseDatos manejador = new GestorBaseDatos(
					HorarioTrabajo.this);
			manejador.abrirBaseDatos();
			String cadenaHoraInicio = "";
			cadenaHoraInicio = manejador.consultarHoraInicio4();
			String descomposicionHoraInicio[] = descomponerCadena(cadenaHoraInicio, ":");
			int horaInicio = Integer.parseInt(descomposicionHoraInicio[0]);
			String cadenaHoraFinal = "";
			cadenaHoraFinal = manejador.consultarHoraFinal4();
			String descomposicionHoraFinal[] = descomponerCadena(cadenaHoraFinal, ":");
			int horaFinal = Integer.parseInt(descomposicionHoraFinal[0]);
			manejador.close();
			System.out.println("hora inicial" + horaInicio + " hora final"
					+ horaFinal + " hora sistema " + horaSistema);
			manejador.abrirBaseDatos();
			horaInicio4 = manejador.consultarHoraInicio4();			 
			horaFinal4 = manejador.consultarHoraFinal4();
			nombreZona4 = manejador.consultarZona4();
			recesoZona4 = manejador.consultarRecesoZona4();
			//activadoZ4 = manejador.consultarActivadoZ4();

			manejador.close();
			asignarTexto(horaSistema, horaInicio, horaFinal, etiquetaNombreZona4, etiquetaHoraInicioZona4, 
					etiquetaHoraFinalZona4, etiquetaRecesoZona4, etiquetaEstadoZona4, nombreZona4, horaInicio4, horaFinal4, recesoZona4);
		} catch (Exception e) {
			mostrarNoAsignacion(etiquetaNombreZona4, etiquetaHoraInicioZona4, etiquetaHoraFinalZona4, etiquetaRecesoZona4, etiquetaEstadoZona4);
		}
	}
	
	public String[] descomponerCadena(String cadena, String separador) {
		String[] elementos = cadena.split(separador);
		return elementos;
	}
	
	public void asignarTexto(int horaDelSistema, int horaDeInicio, int horaFin,TextView etiquetaNombreZona, 
			TextView etiquetaHoraInicio, TextView etiquetaHoraFin,TextView etiquetaReceso, TextView etiquetaEstado, String nombreZona,
			String textoHoraInicio, String textoHoraFin, String textoReceso){
		if (horaDelSistema>= horaDeInicio && horaSistema<= horaFin) {
			
			etiquetaNombreZona.setText(nombreZona);
			etiquetaHoraInicio.setText(textoHoraInicio);
			etiquetaHoraFin.setText(textoHoraFin);
			etiquetaReceso.setText(textoReceso);
			etiquetaEstado.setText("Habilitada");
		}
		if (horaDelSistema < horaDeInicio || horaDelSistema > horaFin) {
			etiquetaNombreZona.setText(nombreZona);
			//etiquetaNombreZona2.getBackground().setColorFilter(Color.argb(199, 235, 110, 0), PorterDuff.Mode.MULTIPLY);
			etiquetaHoraInicio.setText(textoHoraInicio);
			//etiquetaHoraInicioZona2.getBackground().setColorFilter(Color.argb(199, 235, 110, 0), PorterDuff.Mode.MULTIPLY);
			etiquetaHoraFin.setText(textoHoraFin);
			//etiquetaHoraFinalZona2.getBackground().setColorFilter(Color.argb(199, 235, 110, 0), PorterDuff.Mode.MULTIPLY);
			etiquetaReceso.setText(textoReceso);
			etiquetaEstado.setText("Desabilitada");
			//etiquetaEstadoZona2.getBackground().setColorFilter(Color.argb(199, 235, 110, 0), PorterDuff.Mode.MULTIPLY);
		}
	}
	
	public void mostrarNoAsignacion(TextView etiquetaNombreZona, TextView etiquetaHoraInicio, TextView etiquetaHoraFinal, 
			TextView etiquetaReceso, TextView etiquetaEstado ){
		etiquetaNombreZona.setText("No asignada");
		etiquetaHoraInicio.setText("No asignada");
		etiquetaHoraFinal.setText("No asignada");
		etiquetaReceso.setText("No asignado");
		etiquetaEstado.setText("No asignado");
	}
}
